package com.txzt.gaea.upgrade.project.domain.model;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.beetl.sql.core.annotatoin.InsertIgnore;
import org.beetl.sql.core.annotatoin.Table;
import org.beetl.sql.core.annotatoin.UpdateIgnore;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

@Data
@Table(name="tb_project_progress")
public class ProjectProgress implements Serializable {

    private static final long serialVersionUID = 1L;

    /** 进度阶段id */
    private Long id;
    /** 项目id */
    private Long projectId;
    /** 开始时间 */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date startTime;
    /** 结束时间 */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date endTime;
    /** 工作计划说明 */
    private String planStatement;
    /** 完成状态 */
    private String progressStatus;

    /** 原因说明 */
    private String reason;

    /** 完成状态 */
    private String progressStatusName;
    /** 执行人 */
    private String executor;
    /** 完成人 */
    private Long finishBy;
    /** 完成时间 */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date finishTime;
    /** 完成时效 */
    private String finishLimitation;
    /** 工作完成情况 */
    private String workCompletion;
    /** 附件 */
    private String attachment;
    /** 备注 */
    private String remark;
    /** 创建人 */
    private Long createBy;
    /** 创建时间 */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;
    /** 更新人 */
    private Long updateBy;
    /** 更新时间 */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;
    /** 删除标志 */
    private Integer isDelete;


    /** 完成人 */
    @UpdateIgnore
    @InsertIgnore
    private String finishByName;


    @UpdateIgnore
    @InsertIgnore
    private String planNo;
    @UpdateIgnore
    @InsertIgnore
    private String projectName;
    @UpdateIgnore
    @InsertIgnore
    private String planType;
    @UpdateIgnore
    @InsertIgnore
    private String subType;
    @UpdateIgnore
    @InsertIgnore
    private Long departId;
    @UpdateIgnore
    @InsertIgnore
    private BigDecimal budgetFund;
    @UpdateIgnore
    @InsertIgnore
    private Long projectLeader;
    @UpdateIgnore
    @InsertIgnore
    private Integer startYear;
    @UpdateIgnore
    @InsertIgnore
    private Integer endYear;
    @UpdateIgnore
    @InsertIgnore
    private Integer workNum;
    @UpdateIgnore
    @InsertIgnore
    private Integer doingNum;
    @UpdateIgnore
    @InsertIgnore
    private Integer doneNum;
    @UpdateIgnore
    @InsertIgnore
    private Integer delayNum;
    @UpdateIgnore
    @InsertIgnore
    private Integer inDelayNum;

    /** 负责人名 */
    @UpdateIgnore
    @InsertIgnore
    private String projectLeaderName;
    /** 承担部门名 */
    @UpdateIgnore
    @InsertIgnore
    private String departName;

    /** 权限用户 */
    @UpdateIgnore
    @InsertIgnore
    private Long permissionUser;

    /** 权限部门 */
    @UpdateIgnore
    @InsertIgnore
    private Long permissionDept;

    /** 当前登录用户 */
    @UpdateIgnore
    @InsertIgnore
    private Long currentUser;

}
